<?php

/*
 * Modelo: "helper.php"
 * Copyright 2011 SISVOX.
 *
 * Licenciado bajo SISVOX, Version 1.0 (la "Licencia");
 * El codigo presente que compone este Software es propiedad unica y
 * exclusivamente de SISVOX, por lo tanto, usted no podrá utilizar este
 * archivo excepto en cumplimiento de la Licencia ofrecida por SISVOX.
 * Usted puede obtener una copia de la Licencia en:
 *
 *      Soluciones Integrales de Software Vox (SISVOX)
 *                 http://www.sisvox.com
 *
 *     - Carlos Calvo      <ccalvo@sisvox.com>
 *     - Andres Hernandez  <ahernandez@sisvox.com>
 *
 * A menos que sea requerido por la ley aplicable o se acuerde por escrito,
 * el software distribuido bajo la licencia se distribuye "TAL CUAL", CON
 * LAS GARANTIAS Y CONDICIONES expresadas en la "Licencia".
 */
 
 
// ==============================================================================================
// 	FUNCION - SUMA DIAS A UNA FECHA DADA
// ==============================================================================================
	
function sumar_fechas( $fecha, $ndias ) {

	if ( preg_match( "/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/", $fecha ) ) {
		list($dia, $mes, $año) = split("/", $fecha);
	}

	if ( preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/", $fecha ) ) {
		list($dia, $mes, $año) = split("-", $fecha);
    }

	$nueva 		= mktime(0, 0, 0, $mes, $dia, $año) + $ndias * 24 * 60 * 60;
	$nuevafecha = date("d-m-Y", $nueva);

	return ($nuevafecha);
}


// ==================================================================================================
//  FUNCION -  Convierte las cantidades en formato 1250.50 ---> 1.250,50
// ==================================================================================================

function number_formatjs_esp( $monto ) {
//echo $monto;
	$aux 	= explode(".", $monto);	// se separan los enteros de los decimales
	$acum	= "";
	$j 		= strlen($aux[0]);
	
	// Ciclo que coloca . a los miles de la parte entera
	for ( $i = 0; $i < strlen($aux[0]); $i++ ) {
		if ( $j % 3 == 0 && strlen($aux[0]) != 3 ) {
			$acum .= ".";
		}
		
		$acum .= substr($aux[0],$i,1);
		$j--;
	}
		
	// Si no hay decimales se colocan dos ceros por defecto
	if ( !$aux[1] ) {
		$aux[1] = "00";
	} else {
		$aux[1] = substr( $aux[1], 0, 2 );
	}
	
	// Si el primer caracter queda como . se le quita
	if ( substr( $acum, 0, 1 ) == "." ) {
		$acum = substr( $acum, 1, strlen($acum) );
	}
	
	// Se completa con "0" si la cantidad de decimales es 1
	if ( strlen($aux[1]) == 1 ) {
		$aux[1] = $aux[1]."0"; 
	}
	
	$monto_s = $acum.",".$aux[1];
	
	return $monto_s;
}


// =================================================================================================================
//	FUNCION - CALCULAR LA EDAD DE UNA PERSONA DADA SU FECHA DE NACIMIENTO
// =================================================================================================================

function calcular_edad( $fecha ) {
	
	$edad = "";

	$array_fecha = split('[/-]', $fecha );
	// Si el array no tiene tres partes, la fecha es incorrecta
	if ( count($array_fecha) != 3 ) {
	   return $edad;
	}

	// Comprobamos que los anos, mes, dia son correctos

	$ano = $array_fecha[0];
	if ( !is_numeric($ano) ) {
	   return false;
	}    
	$mes = $array_fecha[1];
	if ( !is_numeric($mes) ) {
	   return false;
	}
	$dia = $array_fecha[2];
	if ( !is_numeric($dia) ) {
	   return false;
	}
	
	// Si el año de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4
	if ( $ano <= 99 ) {
	   $ano +=1900;
	}
	// Restamos los años de las dos fechas
	$anoactual = date("Y");
	$edad = $anoactual - $ano - 1; //-1 porque no se si ha cumplido años ya este año

	$mesactual = date("n");
	if ( $mesactual + 1 - $mes < 0 ) {//+ 1 porque los meses empiezan en 0
	   return $edad;
	}
	if ( $mesactual + 1 - $mes > 0 ) {
	   return $edad + 1;
	}
	
	// Si resto los dias y me da menor que 0 entonces no ha cumplido años. Si da mayor o igual si ha cumplido
	$diaactual = date("j");
	if ( $diaactual - $dia >= 0 ) {
	   return $edad + 1;
	}
	return $edad;
}
?>